package com.smartHome.mapper;

import com.smartHome.pojo.entity.House;
import com.smartHome.pojo.vo.HouseListVO;
import com.smartHome.pojo.vo.HouseVO;
import com.smartHome.pojo.vo.MemberVO;
import com.smartHome.pojo.vo.RoomVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface HouseMapper {
        /**
         * 获取所有房子列表
         */
        List<HouseListVO> getAllHouses(Integer userId);

        /**
         * 根据用户ID获取房子列表
         */
        List<HouseVO> getByUserId(Integer userId);

        /**
         * 获取指定用户的所有房子列表
         */
        List<HouseListVO> getAllHousesByUserId(Integer userId);

        /**
         * 获取房子的成员列表
         */
        List<MemberVO> getHouseMembers(Integer houseId);

        /**
         * 获取房子的在线设备数量
         */
        Integer countHouseOnlineDevices(Integer houseId);

        /**
         * 添加新房子
         */
        void addHouse(House house);

        /**
         * 添加房子成员
         */
        void addHouseMember(Integer houseId, Integer userId);

        /**
         * 批量删除房子
         */
        void deleteHouses(List<Integer> houseIds);

        /**
         * 批量删除房子成员
         */
        void deleteHouseMembers(List<Integer> houseIds);

        /**
         * 批量删除房子关联的房间
         */
        void deleteHouseRooms(List<Integer> houseIds);

        /**
         * 获取房子名称
         */
        String getHouseName(Integer houseId);

        /**
         * 获取房子的房间列表
         */
        List<RoomVO> getHouseRooms(Integer houseId);
}
